package com.nnnu.wsnackshop.service;

import com.nnnu.wsnackshop.pojo.dto.AddSpuDTO;
import com.nnnu.wsnackshop.pojo.dto.SpuPageDTO;
import com.nnnu.wsnackshop.pojo.dto.UpdateSpuDTO;
import com.nnnu.wsnackshop.pojo.entity.ProductSpu;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nnnu.wsnackshop.pojo.vo.SpuVO;
import com.nnnu.wsnackshop.result.PageResult;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * <p>
 * 产品SPU表 服务类
 * </p>
 *
 * @author zk
 * @since 2025-05-14
 */
public interface IProductSpuService extends IService<ProductSpu> {

    PageResult<SpuVO> pageSpu(SpuPageDTO dto);
    void addSpu(AddSpuDTO dto);
    void updateSpu(UpdateSpuDTO dto);
    SpuVO getSpuDetail(Integer id);
    void deleteSpu(List<Integer> ids);

    // Excel
    void exportSpu(HttpServletResponse resp) throws IOException;
    void importSpu(MultipartFile file) throws IOException;
    void downloadSpuTemplate(HttpServletResponse resp) throws IOException;

    List<SpuVO> listSpuByProduct(Integer productId);
}
